package cn.lls.req.company;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * 公司注册、更改的请求参数对象
 * @ClassName PermissionReq
 * @Author 划水艺术家
 * @Date 2022/11/15 23:02
 * @Version 1.0
 **/

@Data
@ApiModel("公司信息注册、更改的请求参数对象")
public class CompanyReq implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * 公司的Id，主键，自增
     */
    @ApiModelProperty("公司的Id，主键，自增")
    private Long companyId;

    /**
     * 公司名
     */
    @ApiModelProperty("公司名")
    @NotEmpty(message = "公司名不能为空")
    @Length(min = 4, max = 255, message = "请将公司名的长度控制在4-255字以内")
    private String companyName;

    /**
     * 公司所在省的Id
     */
    @NotNull(message = "公司所在省Id不能为空")
    @ApiModelProperty("公司所在省的Id")
    private Integer provinceId;

    /**
     * 公司所在市的Id
     */
    @NotNull(message = "公司所在市Id不能为空")
    @ApiModelProperty("公司所在市的Id")
    private Integer cityId;

    /**
     * 公司所在区的Id
     */
    @NotNull(message = "公司所在区Id不能为空")
    @ApiModelProperty("公司所在区的Id")
    private Integer districtId;

    /**
     * 公司详细地址
     */
    @ApiModelProperty("公司详细地址")
    @NotEmpty(message = "公司地址不能为空")
    @Length(min = 10, max = 255, message = "请将详细地址的长度控制在10-255字以内")
    private String address;

    /**
     * 公司联系电话
     */
    @NotEmpty(message = "公司联系电话不能为空")
    @ApiModelProperty("公司联系电话")
    @Length(min = 4, max = 20, message = "请将公司联系电话的长度控制在4-20字以内")
    private String contactTel;

    /**
     * 公司联系邮箱
     */
    @NotEmpty(message = "公司联系邮箱不能为空")
    @ApiModelProperty("公司联系邮箱")
    @Email(message = "公司联系邮箱填写不规范")
    private String contactEmail;

    /**
     * 公司logo图片地址，全地址
     */
    @Length(min = 1, max = 255, message = "公司logo图片url过程")
    @ApiModelProperty("公司logo图片地址，全地址")
    private String logoImage;

    /**
     * 公司营业执照图片地址，全地址
     */
    @Length(min = 1, max = 255, message = "公司营业执照图片url过程")
    @ApiModelProperty("公司营业执照图片地址，全地址")
    private String licenseImage;

    /**
     * 公司注册时间
     */
    @ApiModelProperty("公司注册时间")
    private Timestamp createTime;

    /**
     * 公司信息修改时间
     */
    @ApiModelProperty("公司信息修改时间")
    private Timestamp updateTime;

    /**
     * 公司状态 0：审核中，1：拒绝  2：活动中 3：封禁
     */
    @ApiModelProperty("公司状态 0：审核中，1：拒绝  2：活动中 3：封禁")
    private Integer companyStatus;

    /**
     * 公司法人姓名
     */
    @ApiModelProperty("公司法人姓名")
    @NotEmpty(message = "公司法人姓名不能为空")
    @Length(min = 1, max = 50, message = "姓名长度请控制在1-50")
    private String juridicalPersonName;

    /**
     * 公司法人性别 0 女 1 男
     */
    @ApiModelProperty("公司法人性别, 0:女; 1: 男")
    @Range(min = 0, max = 1, message = "性别, 0:女; 1: 男")
    private Integer juridicalPersonGender;

    /**
     * 公司法人身份证照片正反面地址，全地址
     */
    @ApiModelProperty("公司法人身份证照片正反面地址，全地址")
    @Length(max = 500, message = "身份证url长度过长")
    private String juridicalPersonIdCard;

    /**
     * 公司法人联系电话
     */
    @ApiModelProperty("公司法人联系电话")
    @NotEmpty(message = "公司法人联系电话不能为空")
    @Length(min = 4, max = 20, message = "请将公司法人联系电话的长度控制在4-20字以内")
    private String juridicalPersonTel;

    /**
     * 公司法人联系邮箱
     */
    @ApiModelProperty("公司法人联系邮箱")
    @NotEmpty(message = "公司法人联系邮箱不能为空")
    @Email(message = "公司法人邮箱填写不规范")
    private String juridicalPersonEmail;

    /**
     * 公司法定代表姓名
     */
    @ApiModelProperty("公司法定代表姓名")
    @NotEmpty(message = "公司法定代表姓名不能为空")
    @Length(min = 1, max = 50, message = "姓名长度请控制在1-50")
    private String representativeName;

    /**
     * 公司法定代表性别 0 女 1 男
     */
    @ApiModelProperty("公司法定代表性别, 0:女; 1: 男")
    @Range(min = 0, max = 1, message = "性别, 0:女; 1: 男")
    private Integer representativeGender;

    /**
     * 公司法定代表身份证照片正反面地址，全地址
     */
    @ApiModelProperty("公司法定代表身份证照片正反面地址，全地址")
    @Length(max = 500, message = "身份证url长度过长")
    private String representativeIdCard;

    /**
     * 公司法定代表联系电话
     */
    @ApiModelProperty("公司法定代表联系电话")
    @NotEmpty(message = "公司法定代表联系电话不能为空")
    @Length(min = 4, max = 20, message = "请将公司法定代表联系电话的长度控制在4-20字以内")
    private String representativeTel;

    /**
     * 公司法定代表联系邮箱
     */
    @ApiModelProperty("公司法定代表联系邮箱")
    @NotEmpty(message = "公司法定代表联系邮箱不能为空")
    @Email(message = "公司法定代表邮箱填写不规范")
    private String representativeEmail;



}
